Subject: Nonblocking SIG working session report/March CIW

From: "Chung-Huy Chen" <[email-masked]>
Date: Tue, 30 Mar 93 15:51:32 EST

CIW NB SIG,

This is to summarize what happened at the March CIW meeting as related
to Level 2 nonblocking enhancements.

A copy of the draft proposal was distributed at the meeting for
discussions.  The proposal was based on queue-level nonblocking
presented at the CIW meeting last December with the following
modifications:

   -CPI-C creates and manages outstanding-operation-IDs (OOIDs)

   -An OOID is created and assigned to a conversation queue by CPI-C
    when the program issues a Set_Queue_Processing_Mode call to that
    queue.  On completion of Set_Queue_Processing_Mode, the call
    returns the OOID to the program.

   -Wait_For_Conversation is a CPI-C call, i.e., it waits for a list
    of OOIDs which identify outstanding operations on the conversations.

   -The program can optionally associate a user field with an
    outstanding operation using the Set_Queue_Processing_Mode call.
    The program gets back the user field as it specified when the
    associated outstanding operation has been identified as complete
    on the Wait_For_Completion call.  The user field is introduced
    for optimization purpose.

The proposal was largely agreed-to by the participants with some
modification to the Wait_For_Completion call:

   -CM_NO_OUTSTANDING_OPERATION is introduced for the situation
    where none of the queue identified by the OOIDs has an
    outstanding operation.  This includes OOIDs that are null or
    have already been waited on.

At the end, we also discussed the requirement and support of
asynchronous notification.

   -Asynchronous notification has been recognized as a requirement
    to better support the Windows programming environment, but it
    can be supported by the implementation as an option.

   -Asynchronous notification is generated when an outstanding
    operation completes.  It interrupts the execution of the
    program, invokes a callback function defined by the program
    in the program's execution environment, and passes the
    associated user field to the callback function.

I am revising the proposal to reflect the discussions we had in the
meeting.  I expect to make the revised proposal available through
anonymous ftp on the week of 4/5.  I'll let you know as soon as it is
available.

Regards,

Chung-Huy Chen
CIW NB SIG coordinator